<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8" />
        <title>01_复习</title>
    </head>
    <body>
        <script>
            // 堆栈区别：
            // （1）栈结构：先进后出 后进先出  （全局执行环境和函数执行环境）
            //      堆结构：无序

            // （2）栈结构：存储是基本数据类型和引用数据类型的变量
            //      堆结构：对象

            // （3）栈结构：内存小

            // （4）栈结构：运行速度快


            // 
            // var a = 10;
            // var b = a;
            // b = 20;
            // console.log(a,b);

            // var a = [1,2,3];
            // var b = a;
            // b[1] = 22;
            // console.log(a,b);

            // function f1(a){
            //     a = 20;
            // }
            // var a = 10;
            // f1(a);
            // console.log(a);

            // function f1(arr){
            //     arr[1] = 666;
            // }

            // var arr = [1,2,3];

            // f1(arr);

            // console.log(arr);

            // new关键字的作用
            // 1.在堆结构中开辟内存空间
            // 2.this执行该内存地址
            // 3.执行函数代码
            // 4.将内存地址返回



            // 构造函数当做普通函数来使用
            // function Person(name,age){
            //     this.name = name;
            //     this.age = age;
            // }

            // var p = Person('张三',18);
            // console.log(p);


            // 构造函数当做普通函数来使用-函数中有方法
            // function Person(name,age){
            //     this.name = name;
            //     this.age = age;
            //     this.eat = function(){
            //         console.log(1111);
            //     }
            // }

            // var p = Person('张三',18);
            // console.log(p);

            // 构造函数当做构造函数来使用
            function Person(name,age){
                this.name = name;
                this.age = age;
                this.eat = function(){
                    console.log(1111);
                }
            }

            var p = new Person('张三',18);
            console.log(p);










        </script>
    </body>
</html>